package br.com.bestOffer.ejb.placaDeVideo.entity;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.Enumerated;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

import br.com.bestOffer.ejb.produto.entity.Produto;
import br.com.bestOffer.enumerator.ArquiteturaPlacaDeVideo;
import br.com.bestOffer.enumerator.CategoriaProduto;
import br.com.bestOffer.enumerator.VersaoMemoriaPlacaDeVideo;

@Entity
@Table(name="TB11_PLACA_DE_VIDEO")
@DiscriminatorValue("PlacaDeVideo")
@NamedQueries({
	@NamedQuery(name="PlacaDeVideo.buscarPlacaDeVideoPorId", query="SELECT p FROM PlacaDeVideo p where p.id = :idProduto"),
	@NamedQuery(name="PlacaDeVideo.listarTodasPlacasDeVideo", query="SELECT p FROM PlacaDeVideo p ")
})
public class PlacaDeVideo extends Produto implements Serializable {

	private static final long serialVersionUID = 727271448730165594L;
	
	@Column(name="GPU",nullable=false)
	private String GPU;
	
	@Column(name="versao_pci",nullable=false)
	private String versaoPciRecomendado;
	
	@Column(name="quantidade_memoria",nullable=false)
	private Integer quantidadeMemoria;
	
	@Column(name="barramento_pci",nullable=false)
	private String barramentoPciRecomendado;
	
	@Column(name="barramento",nullable=false)
	private Integer barramento;
	
	@Column(name="dual_gpu",nullable=false)
	private Boolean dualGpu;
	
	@Column(name="potencia_fonte",nullable=false)
	private Integer potenciaFonte;
	
	@Column(name="consumo_placa",nullable=false)
	private Integer consumo;
	
	@Enumerated
	@Column(name="versao_memoria_placa_video",nullable=false)
	private VersaoMemoriaPlacaDeVideo versaoMemoriaPlacaVideo;
	
	@Enumerated
	@Column(name="arquitetura_placa_video",nullable=false)
	private ArquiteturaPlacaDeVideo arquiteturaPlacaVideo;
	
	@Column(name="saidas_dvi",nullable=false)
	private Integer saidasDvi;
	
	@Column(name="saidas_hdmi",nullable=false)
	private Integer saidasHdmi;
	
	@Column(name="saidas_vga",nullable=false)
	private Integer saidasVga;
	
	@Column(name="saidas_display",nullable=false)
	private Integer saidasDisplayPort;
	
	public PlacaDeVideo(){
		this.setCategoriaProduto(CategoriaProduto.PlacaVideo);
	}

	public String getGPU() {
		return GPU;
	}

	public void setGPU(String gPU) {
		GPU = gPU;
	}

	public String getVersaoPciRecomendado() {
		return versaoPciRecomendado;
	}

	public void setVersaoPciRecomendado(String versaoPciRecomendado) {
		this.versaoPciRecomendado = versaoPciRecomendado;
	}

	public Integer getQuantidadeMemoria() {
		return quantidadeMemoria;
	}

	public void setQuantidadeMemoria(Integer quantidadeMemoria) {
		this.quantidadeMemoria = quantidadeMemoria;
	}

	public String getBarramentoPciRecomendado() {
		return barramentoPciRecomendado;
	}

	public void setBarramentoPciRecomendado(String barramentoPciRecomendado) {
		this.barramentoPciRecomendado = barramentoPciRecomendado;
	}

	public Integer getBarramento() {
		return barramento;
	}

	public void setBarramento(Integer barramento) {
		this.barramento = barramento;
	}

	public Boolean getDualGpu() {
		return dualGpu;
	}

	public void setDualGpu(Boolean dualGpu) {
		this.dualGpu = dualGpu;
	}

	public Integer getPotenciaFonte() {
		return potenciaFonte;
	}

	public void setPotenciaFonte(Integer potenciaFonte) {
		this.potenciaFonte = potenciaFonte;
	}

	public VersaoMemoriaPlacaDeVideo getVersaoMemoriaPlacaVideo() {
		return versaoMemoriaPlacaVideo;
	}

	public void setVersaoMemoriaPlacaVideo(
			VersaoMemoriaPlacaDeVideo versaoMemoriaPlacaVideo) {
		this.versaoMemoriaPlacaVideo = versaoMemoriaPlacaVideo;
	}

	public ArquiteturaPlacaDeVideo getArquiteturaPlacaVideo() {
		return arquiteturaPlacaVideo;
	}

	public void setArquiteturaPlacaVideo(
			ArquiteturaPlacaDeVideo arquiteturaPlacaVideo) {
		this.arquiteturaPlacaVideo = arquiteturaPlacaVideo;
	}

	public Integer getSaidasDvi() {
		return saidasDvi;
	}

	public void setSaidasDvi(Integer saidasDvi) {
		this.saidasDvi = saidasDvi;
	}

	public Integer getSaidasHdmi() {
		return saidasHdmi;
	}

	public void setSaidasHdmi(Integer saidasHdmi) {
		this.saidasHdmi = saidasHdmi;
	}

	public Integer getSaidasVga() {
		return saidasVga;
	}

	public void setSaidasVga(Integer saidasVga) {
		this.saidasVga = saidasVga;
	}

	public Integer getSaidasDisplayPort() {
		return saidasDisplayPort;
	}

	public void setSaidasDisplayPort(Integer saidasDisplayPort) {
		this.saidasDisplayPort = saidasDisplayPort;
	}

	public Integer getConsumo() {
		return consumo;
	}

	public void setConsumo(Integer consumo) {
		this.consumo = consumo;
	}

	
}
